#include "Ambiante.hpp"

using namespace std;

const Coord Ambiante::Position = Coord( false );

/**
 * Constructeur standard, initialisant la Couleur et le coefficient
 * Attenuation de la source Ambiante.
 *
 * @param coul couleur de la source.
 * @param attenuation coefficient d'atténuation de la source.
 */
Ambiante::Ambiante(const Couleur& coul, const double& attenuation)
  : Lumiere( coul, srcAmbiante ), Attenuation( attenuation )
{}

/**
 * Constructeur de copie, permet de copier une instance de Ambiante.
 *
 * @param src instance à duppliquer.
 */
Ambiante::Ambiante(const Ambiante& src)
  : Lumiere( src.Color, srcAmbiante ), Attenuation( src.Attenuation )
{}

/**
 * Le destructeur n'a rien de spécial à faire.
 */
Ambiante::~Ambiante()
{}

/**
 * Permet de récupérer la couleur de la source lumineuse.
 *
 * @return une référence constante sur Color.
 */
const Couleur& Ambiante::color() const
{
  return Color;
}

/**
 * Permet de récupérer la "position" de la source lumineuse.
 *
 * @return une référence constante sur Position.
 */
const Coord& Ambiante::position() const
{
  return Position;
}

/**
 * Permet de récupérer le coefficient d'atténuation, qui est ici constant.
 *
 * @return la valeur du champ Attenuation.
 */
double Ambiante::attenuation(const Coord& coord) const
{
  return Attenuation;
}
